<?php

namespace app\common\model\Subject;

use think\Model;

// 引入软删除
use traits\model\SoftDelete;

/**
 * 课程模型
 */
class Subject extends Model
{
    // 引用软删除
    use SoftDelete;

    // 表名
    protected $name = 'subject';

    // 自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';

    // 定义时间戳字段名 在插入语句的时候 会自动写入时间戳
    protected $createTime = 'createtime';
    protected $updateTime = false;
    protected $deleteTime = 'deletetime';

    // 忽略数据表不存在的字段
    protected $field = true;

    // 追加自定义字段属性 别名
    protected $append = [
        'thumbs_text',
        'likes_text'
    ];

    // 给追加的新字段赋值
    public function getThumbsTextAttr($value, $data)
    {
        $thumbs = isset($data['thumbs']) ? $data['thumbs'] : '';

        // 路径判断 要用相对路径   ./
        if(!is_file(".".$thumbs))
        {
            // 给个默认图
            $thumbs = '/assets/home/images/subject.jpg';
        }
        return $thumbs;
    }

    public function getLikesTextAttr($value, $data)
    {
        // 获取出likes字段值
        $likes = trim($data['likes']);
        // 字符串转换为数组
        $likes = explode(',', $likes);
        // 去除空元素
        $likes = array_filter($likes);

        // 返回数组的总个数，就是点赞的总数
        return count($likes);
    }

    public function category()
    {
        return $this->belongsTo('app\common\model\Subject\Category', 'cateid', 'id', [], 'LEFT')->setEagerlyType(0);
    }
}
